﻿///**************************************************************************
//创建日期:	2019/7/25 9:42:49     
//作	  者:	张存
//邮 	  箱:	zhangcunliang@126.com
//创建时间:	
//Copyright (c)  ZhCun.cn

//描	述：
//记	录：
//    2019.9.26   弃用
//***************************************************************************/
//using System;
//using System.Collections.Generic;
//using System.Text;
//using ZhCun.Utils;
//using ZhCun.Utils.Helpers;
//using ZhCun.WebCommon.DBModels;
//using System.Linq;
//using System.Threading.Tasks;

//namespace ZhCun.WebCommon.AL
//{
//   class UrlRightsCache_del
//    {
//        const string ROLE_KEY = "{8897E48F-6F31-4211-A808-670AE220E01F}";

//        /// <summary>
//        /// 从数据库中异步载入权限
//        /// </summary>
//        ///// <param name="isLoadMenus">是否重新从数据库中载入菜单</param>
//        ///// <param name="roleId">是否对指定角色进行载入</param>
//        public static void LoadRights() //string roleId = null, bool isLoadMenus = true)
//        {
//            Task.Run(() =>
//            {
//                BaseAL al = new BaseAL();
//                //2019.7.29 再次重构
//                var query = al.CreateQueryCondition<VSysRoleMenu>();
//                query.WhereAnd(s => s.IsEnable == true);
//                query.OrderBy(s => s.MenuLevel).OrderBy(s => s.MenuOrder);
//                var roleMenus = al.DB.Query<VSysRoleMenu>(query).ToList(true);

//                var roleGroup = from data in roleMenus
//                                group data by data.RoleId into g
//                                select g;

//                foreach (var roleItem in roleGroup)
//                {
//                    string roleId = roleItem.Key;
//                    var menus = roleItem.ToList();
//                    MemoryCacheHelper.Set($"{roleId}@{ROLE_KEY}", menus);
//                }
//                LogHelper.LogObj.Info($"载入菜单权限 {roleMenus.Count} 个");
//                //return roleMenus.Count;
//            });
//        }

//        public static List<VSysRoleMenu> GetRoleRights(string roleId, bool onlyView = true)
//        {
//            var r = MemoryCacheHelper.Get<List<VSysRoleMenu>>($"{roleId}@{ROLE_KEY}");
//            if (onlyView)
//            {
//                return r.Where(s => s.IsApi == false).ToList();
//            }
//            else
//            {
//                return r;
//            }
//        }

//        public static bool IsHasRights(string roleId, string url)
//        {
//            if (AppCommonConfig.AppSettings.ManageRoleId.Equals(roleId, StringComparison.CurrentCultureIgnoreCase))
//            {
//                return true;
//            }
//            var r = GetRoleRights(roleId, false);
//            return r.Exists(s => s.MenuUrl == url);
//        }
//    }
//}